/**
 * http配置
 */
// 引入axios以及element ui中的loading和message组件
import axios from 'axios'
import { Loading, Message ,MessageBox} from 'element-ui'
import store from "@/store/vuex";
import router from "@/router/index";

// 超时时间
// axios.defaults.timeout = 5000
// http请求拦截器
var loadinginstace
//凭据必须加，否则后台不认证session
axios.defaults.withCredentials = true 
axios.interceptors.request.use(config => {
    if (store.state.token) {  // 判断是否存在token，如果存在的话，则每个http header都加上token
        config.headers.token = store.state.token;
    }
    return config
}, error => {
    loadinginstace.close()
    Message.error({
    message: '加载超时'
 })
 return Promise.reject(error)
})
// http响应拦截器
axios.interceptors.response.use(data => {// 响应成功关闭loading
    if(data.data.code == 4 || data.data.code == 5){
        //后台信息过期
        MessageBox.alert(data.data.msg || '信息过期', '提示', {
            confirmButtonText: '确定',
            callback: action => {
                return router.push("/")
            }
        }); 
    }
    return data

}, (error) => {
    console.log(error)
    Message.error({message: '加载失败'})
    return Promise.reject(error)
})
 
export default axios